{{#if (eq config.component componentTypes.input)}}
<g-input
  v-model="{{ getPath path virtualPath }}"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.number)}}
<g-input-number
  v-model="{{ getPath path virtualPath }}"
  :min="{{config.min}}"
  :max="{{config.max}}"
  :step="{{config.step}}"
  {{#if config.suffix}}
  suffix="{{config.suffix}}"
  {{/if}}
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.color)}}
<g-color-picker
  v-model="{{ getPath path virtualPath }}"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.checkbox)}}
<el-checkbox
  v-model="{{ getPath path virtualPath }}"
/>
{{else if (eq config.component componentTypes.switch)}}
<el-switch
  v-model="{{ getPath path virtualPath }}"
/>
{{else if (eq config.component componentTypes.radio)}}
<el-radio-group
  v-model="{{ getPath path virtualPath }}"
>
  <el-radio-button
    v-for="em in {{{ enumsToTpl config.enums }}}"
    :key="em"
    :label="em"
  >
    \{{ em }}
  </el-radio-button>
</el-radio-group>
{{else if (eq config.component componentTypes.slider)}}
<el-slider
  v-model="{{ getPath path virtualPath }}"
  :min="{{config.min}}"
  :max="{{config.max}}"
  :step="{{config.step}}"
  :show-tooltip="false"
  show-input
  input-size="mini"
  class="g-slider"
/>
{{else if (eq config.component componentTypes.select)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="[]"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
  disabled
/>
{{else if (eq config.component componentTypes.fontFamily)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="fontFamilys"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.fontWeight)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="fontWeights"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.fontStyle)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="fontStyles"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.hAlign)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="hAligns"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.vAlign)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="vAligns"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.writingMode)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="writingModes"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.justify)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="justifyContents"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.align)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="aligns"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.angle)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="angles"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.location)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="locations"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.lineStyle)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="lineStyles"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.fillType)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="fillTypes"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.repeatType)}}
<g-select
  v-model="{{ getPath path virtualPath }}"
  :data="repeatTypes"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.uploadImage)}}
<g-upload-image
  v-model="{{ getPath path virtualPath }}"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else if (eq config.component componentTypes.selectImage)}}
<g-select-image
  v-model="{{ getPath path virtualPath }}"
  :images="[]"
  {{#if isFlat}}
  is-inline
  label="{{config.alias}}"
  {{/if}}
/>
{{else}}
<span>--</span>
{{/if}}
